package com.itehima.BigDecimalTest;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test {
    public static void main(String[] args) {
//        求以下double数组的平均值(四舍五入保留两位小数)：
//        double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
        double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
        BigDecimal sum = new BigDecimal("0");   //定义一个BigDecimal记录总数
        for (double v : arr) {
            sum = sum.add(BigDecimal.valueOf(v));   //将每个元素都转换为BigDecimal类型，再用add方法相加
        }
        System.out.println(sum);
        //保证计算时所有数据类型都为BigDecimal，通过 RoundingMode.HALF_UP规定四舍五入
        BigDecimal avg = sum.divide(BigDecimal.valueOf(1.0*arr.length) , 2, RoundingMode.HALF_UP);
        //最终的结果需要转换回double类型
        double rs = avg.doubleValue();
        System.out.println("数组的平均值为："+rs);

    }
}
